package com.shuai.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.shuai.model.po.SysOrgan;
import com.shuai.model.query.SysOrganQuery;
import com.shuai.model.query.SysRoleQuery;
import com.shuai.model.vo.SysOrganVo;
import com.shuai.utils.tree.SysTreeVo;

import java.util.List;

/**
 * 机构信息 服务类
 *
 * @author shuai
 * @since 2022
 */
public interface SysOrganService extends IService<SysOrgan> {

    /**
     * 添加机构
     * @param sysOrgan
     * @return
     */
    Integer addSysOrgan(SysOrgan sysOrgan);

    /**
     * 删除机构
     * @param query
     * @return
     */
    Integer deleteSysOrgan(SysOrganQuery query);

    /**
     * 更新机构
     * @param sysOrgan
     * @return
     */
    Integer editSysOrgan(SysOrgan sysOrgan);

    /**
     * 全部查询
     * @param query
     * @return
     */
    List<SysOrganVo> selectList(SysOrganQuery query);

    /**
     * 分页查询
     * @param query
     * @return
     */
    IPage<SysOrganVo> selectPage(SysOrganQuery query);

    /**
     * 查询详细
     * @param id
     * @return
     */
    SysOrganVo selectById(Long id);

    /**
     * 查询机构树
     * @param query
     * @return
     */
    List<SysTreeVo> selectTreeTree(SysOrganQuery query);

    /**
     * 查询机构列表
     * @param query
     * @return
     */
    List<SysOrganVo> selectTreeList(SysOrganQuery query);

}
